home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-12-25 | 5.3 KB | 7 lines | [TEXT/MPS ] |
- goto yydefault;
-
- yyn += yychar;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar)
- goto yydefault;
-
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrlab;
-
- yystate = yyn;
-
- yyptr = yyrq2;
- while (yyptr != yyrq1)
- {
- yyn = *yyptr++;
- yylen = yyr2[yyn];
- yyvsp -= yylen;
- yylsp -= yylen;
-
- yyguard(yyn, yyvsp, yylsp);
- if (yyerror)
- goto yysemerr;
-
- yyaction(yyn, yyvsp, yylsp);
- *++yyvsp = yyval;
-
- yylsp++;
- if (yylen == 0)
- {
- yylsp->timestamp = timeclock;
- yylsp->first_line = yytloc.first_line;
- yylsp->first_column = yytloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
-
- if (yyptr == yyrq + YYMAXRULES)
- yyptr = yyrq;
- }
-
- if (yystate == YYFINAL)
- YYACCEPT;
-
- yyrq2 = yyptr;
- yyrq1 = yyrq0;
-
- *++yyvsp = yytval;
- *++yylsp = yytloc;
- yytval = yylval;
- yytloc = yylloc;
- yyget();
-
- goto yynewstate;
-
- yydefault:
-
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
-
- yyreduce:
-
- *yyrq0++ = yyn;
-
- if (yyrq0 == yyrq + YYMAXRULES)
- yyrq0 = yyrq;
-
- if (yyrq0 == yyrq2)
- {
- yyabort("Parser Rule Queue Overflow");
- YYABORT;
- }
-
- yyssp -= yyr2[yyn];
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTBASE];
-
- goto yynewstate;
-
- yysemerr:
- *--yyptr = yyn;
- yyrq2 = yyptr;
- yyvsp += yyr2[yyn];
-
- yyerrlab:
-
- yygssp = yyssp;
- yygvsp = yyvsp;
- yyglsp = yylsp;
- yyrestore(yyrq0, yyrq2);
- yyrecover();
- yystate = *yygssp;
- yyssp = yygssp;
- yyvsp = yygvsp;
- yyrq0 = yyrq;
- yyrq1 = yyrq0;
- yyrq2 = yyrq0;
- goto yyresume;
- }